We should honour -initrd and -append iff -kernel is specified, because
that's how QEMU works.
Check direct boot parameters in libxl__domain_build_info_setdefault.
Return failure if kernel is missing while ramdisk (-initrd) and / or
cmdline (-append) is present.
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Chunyan Liu <cyliu@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
break;
default:abort();
}
+
+ /* Check HVM direct boot parameters, we should honour ->ramdisk and
+ * ->cmdline iff ->kernel is set.
+ */
+ if (!b_info->kernel && (b_info->ramdisk || b_info->cmdline)) {
+ LOG(ERROR, "direct boot parameters specified but kernel missing");
+ return ERROR_INVAL;
+ }
}
if (b_info->type == LIBXL_DOMAIN_TYPE_HVM &&